/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.flowernet.dao;

import br.com.flowernet.entity.Floricultura;
import java.util.LinkedList;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 *
 * @author Felipe
 */
@Stateless
public class FloriculturaDAO {

    @PersistenceContext(name = "FlowerNetPU")
    private EntityManager em;

    public Long addFloricultura(Floricultura floricultura) {
        em.persist(floricultura);
        return floricultura.getIdFloricultura();
    }

    public Long removeFloricultura(Floricultura floricultura) {
        floricultura = em.getReference(Floricultura.class, floricultura.getIdFloricultura());
        em.remove(floricultura);
        return floricultura.getIdFloricultura();
    }

    public Long updateFloricultura(Floricultura floricultura) {
        em.merge(floricultura);
        return floricultura.getIdFloricultura();
    }

    public void removeFloriculturaById(long idFloricultura) {
        Floricultura floricultura = em.find(Floricultura.class, idFloricultura);
        em.remove(floricultura);
    }

    public List<Floricultura> getAllFloricultura() {

        List<Floricultura> floriculturas = new LinkedList<Floricultura>();

        String jpql = "SELECT A FROM Floricultura A";
        Query qr = em.createQuery(jpql);
        floriculturas = qr.getResultList();
        return floriculturas;

    }

    public List<Floricultura> getFloriculturaCidade(String cidade) {

      
        List<Floricultura> floriculturas = new LinkedList<Floricultura>();

        Query query = em.createQuery("SELECT f FROM Floricultura f where f.cidade = ?");
        query.setParameter(1, cidade);

        floriculturas = query.getResultList();

        return floriculturas;

    }

    public Floricultura getFloricultura(long idFloricultura) {

        Floricultura toReturn = em.find(Floricultura.class, idFloricultura);
        return toReturn;
    }
}
